home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-08-23 | 937 b | 46 lines | [TEXT/????] |
- SYSTEM sort;
- (* Odd-Even Transposition Sorting (parallel bubble-sort) *)
- CONST n = 10;
- CONFIGURATION list [1..n];
- CONNECTION left : list[i] -> list [i-1].right;
- right: list[i] -> list [i+1].left;
-
- SCALAR k: INTEGER;
- a: ARRAY[1..n] OF INTEGER;
-
- VECTOR val,r,l: INTEGER;
- swap : BOOLEAN;
-
- BEGIN
- WriteString('Enter 10 values: ');
- FOR k:=1 TO n DO ReadInt(a[k]) END;
- LOAD(val,a);
-
- FOR k:=1 TO n DO
- PARALLEL
- PROPAGATE.right(val,l);
- PROPAGATE.left(val,r);
- swap := FALSE;
-
- IF ODD(k) THEN
- IF ODD(DIM1) AND (r<val) THEN
- val := r;
- swap := TRUE
- END
- ELSE
- IF EVEN(DIM1) AND (r<val) THEN
- val := r;
- swap := TRUE
- END;
- END;
-
- PROPAGATE.right(swap);
- IF swap AND (id_no > 1) THEN val:=l END;
- ENDPARALLEL
- END;
-
- STORE(val,a);
- FOR k:=1 TO n DO WriteInt(a[k],10); WriteLn END;
- END sort.
-
-